/**
 * url http拦截
 */
import Vue from 'vue';
import axios from 'axios';
import VueAxios from 'vue-axios';
// import './md5.js';
import tool from './tool.js';
import {getbaseUrl,getnexturl} from "@/assets/js/apiconfig.js"
import qs from 'qs';
//請求方法公用類

//网关地址
var http = getbaseUrl();
var nextHttp = getnexturl();
var useHttp = "";
//线下测试地址
// var http = "https://capi.ructrip.com/";
// var http = "http://localhost:8200/";
import {getTimeSpan} from "@/assets/js/tool.js";
import {getSign} from "@/assets/js/signUtil.js";
import globalCache from "@/assets/js/globalCache.js";
//請求方法：
//參數
//url：請求地址 data：請求參數 method：請求類型
//callBackFunc：回調函數 （請求方法本身不做任務處理，只是調用接口然後返回數據，所有邏輯都在回調方法中自己處理）
//that 調用接口的頁面本身（xxx.js）
function request(url, data, method, callBackFunc,that) {
  var paramData=data;
  data.timestamp=getTimeSpan();
  data.sign=getSign(paramData);
  var userInfo=globalCache.getCache("user_info");
  var token='';
  if(userInfo!=null){
    userInfo = JSON.parse(userInfo);
    token=userInfo.token;
  }
  var headerMethod = url
  //判断是否用的是短链接
  if(url.indexOf("sojo.") > -1){
    useHttp = http;
    var header= {
      'content-type': 'application/json',
      'method': headerMethod,
      'token':  token
    }
  }else{
    useHttp = nextHttp
    var header= {
      'content-type': 'application/json',
      'token':  token
    }
  }
  return axios({
      method: 'POST',
      url: useHttp+url,	
      data: data,
      headers:header
  }).then((res) => {
    if (res.data.respCode == "00") {
        callBackFunc(res,that);
      } else {
        callBackFunc(res)
        // Toast({
        //   message: res.data.respDesc,
        //   duration: 2000
        // })
      }
  }).catch((response)=>{
      // alert(response.message);
  });
}

export default {
  request,
  http
}


